package subraSoft.centaurus.model.service;

import java.util.List;

import subraSoft.centaurus.model.cobj.CenDefaultCObj;

/**
 * Interfaz que deben implementar todos los servicios de ABM.
 * 
 * @author caeycae
 *
 */
public interface CenIABMService {

	/**
	 * Obtiene toda la lista de objetos del tipo.
	 * 
	 * @return toda la lista de objetos del tipo.
	 */
	List<CenDefaultCObj> getList();
	
	/**
	 * Actualiza el obejto en la base o lo da de alta.
	 * Lo da de alta en caso de que el cobj no tenga id.
	 * 
	 * @param cobj objeto a insertar o actualizar.
	 * @return el id con el que persistio el objeto. En el caso
	 * de la actalizacion retorna el mismo id que ya tenia.
	 */
	Object saveOrUpdate(CenDefaultCObj cobj);

	/**
	 * Borra el objeto de la base.
	 * 
	 * @param cobj en cobj correspondiente al DO a borrar.
	 */
	void delete(CenDefaultCObj cobj);
}
